package com.shuaiche.yeguan.net.http;

import java.io.File;
import java.util.Map;

/**
 * 网络请求处理器
 */
public interface IHttpProcess {

    /**
     * post传参数请求
     * @param url url地址
     * @param params 请求参数Map，无参时传null
     * @param tag 网络请求tag
     * @param header http请求头
     * @param callBack 回调接口
     */
    void post(String url, Map<String, Object> params, Object tag, Map<String, String> header, CallBack callBack);

    /**
     * post传json字符串请求
     * @param url url地址
     * @param jsonStr 需要传的json字符串
     * @param tag 网络请求tag
     * @param header http请求头
     * @param callBack 回调接口
     */
    void post(String url, String jsonStr, Object tag, Map<String, String> header, CallBack callBack);

    /**
     * get请求
     * @param url url地址
     * @param params 请求参数Map
     * @param tag 网络请求tag
     * @param header http请求头
     * @param callback 回调接口
     */
    void get(String url, Map<String, Object> params, Object tag, Map<String, String> header, CallBack callback);

    /**
     * post上传图片
     * @param url url地址
     * @param params 请求参数Map
     * @param tag 网络请求tag
     * @param header http请求头
     * @param callBack 回调接口
     * @param files 图片文件数组
     */
    void uploadFile(String url, Map<String, Object> params, Object tag, Map<String, String> header, CallBack callBack, File... files);

    /**
     * 下载文件
     * @param url 文件url地址
     * @param savePath 文件保存路径
     * @param fileName 文件保存的文件名
     * @param tag 网络请求tag
     * @param header 网络请求头
     * @param listener 下载回调
     */
    void downloadFile(String url, String savePath, String fileName, Object tag, Map<String, String> header, DownloadListener listener,ProgressListener progressListener);
}
